/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufpb.projetoesa.comunicacao;

import br.ufpb.projetoesa.dados.DisciplinaDAOArquivoBin;
import br.ufpb.projetoesa.dados.DisciplinaDAOArquivoFactory;
import br.ufpb.projetoesa.dados.DisciplinaDAOFactory;
import br.ufpb.projetoesa.negocio.Disciplina;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author leonardo
 */
public class GerenteCadastroDisciplina {
    
    private List<Disciplina> disciplinasCadastradas; // vai sair daqui...
    private DisciplinaDAOFactory discDaoFactory;
    
    /* SINGLETON */
    private static GerenteCadastroDisciplina gerente;
          
    public static GerenteCadastroDisciplina getInstance(){
        if (gerente == null)
            return new GerenteCadastroDisciplina();
        return gerente;
    }
    
    /* CONSTRUTOR */
    public GerenteCadastroDisciplina(){
        disciplinasCadastradas = new ArrayList<Disciplina>();
    }
    
    /* MÉTODOS */
    public void carregarDisciplinasDoArquivoBin(){
        
        discDaoFactory = DisciplinaDAOFactory.
                getDisciplinaDAOFactory(DisciplinaDAOFactory.FILE);
        
        DisciplinaDAOArquivoBin arquivoDaoBin = (DisciplinaDAOArquivoBin) 
                discDaoFactory.getDisciplinaDAO(DisciplinaDAOArquivoFactory.BIN);
        
        //this.disciplinasCadastradas = (List<Disciplina>) arquivoDaoBin.recuperaDisciplinasNoArquivoBin();
        
    }
    
    public void salvarDisciplinasCadastradasNoArquivoBin() {
        
        discDaoFactory = DisciplinaDAOFactory.
                getDisciplinaDAOFactory(DisciplinaDAOFactory.FILE);
        
        DisciplinaDAOArquivoBin arquivoDaoBin = (DisciplinaDAOArquivoBin) 
                discDaoFactory.getDisciplinaDAO(DisciplinaDAOArquivoFactory.BIN); 
        
        //arquivoDaoBin.escreveDisciplinasNoArquivoBin(this.disciplinasCadastradas);
        
    }
    
}
